oracle

推荐列表 站点导航

当前位置:首页 > 数据库 > oracle >

Oracle In和exists not in和not exists的比较分析

来源:网络整理  作者:网络  发布时间:2020-12-12 12:10
一个是问in exist的区别,一个是not in和not exists的区别...
从sql编程角度来说,in直观,exists不直观多一个select,

not extsts 的子查询能用到表上的索引。
in可以用于各种子查询,而exists好像只用于关联子查询
in和exist的区别

not in和not exists的区别
从性能上来看
所以推荐用not exists代替not in
把这两个很普遍性的网友比较关心的问题总结回答一下。
not in内外表都进行全表扫描,没有用到索引;
in用的是hash join,所以内表如果小,整个查询的范围都会很小,如果内表很大,外表如果也很大就很慢了,这时候exists才真正的会快过in的方式。

有时间用具体的实例和执行计划来说明。


exists是用loop的方式,循环的次数影响大,外表要记录数少,内表就无所谓了

不过如果是exists和in就要具体看情况了



相关热词: oracle

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/sql/oracle/2919.shtml

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

Oracle In和exists not in和not exists的比较分析

2020-12-12 编辑:网络

从sql编程角度来说,in直观,exists不直观多一个select,

not extsts 的子查询能用到表上的索引。
in可以用于各种子查询,而exists好像只用于关联子查询
in和exist的区别

not in和not exists的区别
从性能上来看
所以推荐用not exists代替not in
把这两个很普遍性的网友比较关心的问题总结回答一下。
not in内外表都进行全表扫描,没有用到索引;
in用的是hash join,所以内表如果小,整个查询的范围都会很小,如果内表很大,外表如果也很大就很慢了,这时候exists才真正的会快过in的方式。

有时间用具体的实例和执行计划来说明。


exists是用loop的方式,循环的次数影响大,外表要记录数少,内表就无所谓了

不过如果是exists和in就要具体看情况了



本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/sql/oracle/2919.shtml

相关文章

风云图片

推荐阅读

返回oracle频道首页